A flash memory device is a specific type of non-volatile memory by which bits of logical data are stored in memory cells arrayed in one or more memory blocks. The memory cells can be programmed to store logical data “0”, or be erased to store logical value “1”. Usually, a memory block is erased first prior to being programmed with data. Sometimes, a memory block can be partially erased, i.e., a selected portion of the memory block is erased, while the unselected portion of the memory block is not erased. In such case, the unselected portion of the memory block needs to be refreshed in order to ensure data integrity.